<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.3.1"/>
<title>Open Event Machine API: event_machine_group.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Open Event Machine API
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.3.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('event__machine__group_8h.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">event_machine_group.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Event Machine optional fork-join helper.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;<a class="el" href="event__machine_8h_source.html">event_machine.h</a>&gt;</code><br/>
</div><div class="textblock"><div class="dynheader">
Include dependency graph for event_machine_group.h:</div>
<div class="dyncontent">
<div class="center"><img src="event__machine__group_8h__incl.png" border="0" usemap="#event__machine__group_8h" alt=""/></div>
<map name="event__machine__group_8h" id="event__machine__group_8h">
<area shape="rect" id="node3" href="event__machine_8h.html" title="Event Machine API v1.0." alt="" coords="312,83,429,111"/><area shape="rect" id="node5" href="event__machine__types_8h.html" title="Event Machine basic types." alt="" coords="103,161,257,189"/></map>
</div>
</div>
<p><a href="event__machine__group_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:adb766a36099bdc633d8aa36e82e889a2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adb766a36099bdc633d8aa36e82e889a2"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="event__machine__group_8h.html#adb766a36099bdc633d8aa36e82e889a2">EM_EVENT_GROUP_UNDEF</a>&#160;&#160;&#160;EM_UNDEF_U64</td></tr>
<tr class="memdesc:adb766a36099bdc633d8aa36e82e889a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Invalid event group. <br/></td></tr>
<tr class="separator:adb766a36099bdc633d8aa36e82e889a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adca2f2f8040040218a3ec6795a9f1864"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adca2f2f8040040218a3ec6795a9f1864"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="event__machine__group_8h.html#adca2f2f8040040218a3ec6795a9f1864">PRI_EGRP</a>&#160;&#160;&#160;PRIu64</td></tr>
<tr class="memdesc:adca2f2f8040040218a3ec6795a9f1864"><td class="mdescLeft">&#160;</td><td class="mdescRight">em_event_group_t printf format <br/></td></tr>
<tr class="separator:adca2f2f8040040218a3ec6795a9f1864"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a199db840eb3b542e407c975b5b3f3362"><td class="memItemLeft" align="right" valign="top">typedef uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="event__machine__group_8h.html#a199db840eb3b542e407c975b5b3f3362">em_event_group_t</a></td></tr>
<tr class="memdesc:a199db840eb3b542e407c975b5b3f3362"><td class="mdescLeft">&#160;</td><td class="mdescRight">Event group id.  <a href="#a199db840eb3b542e407c975b5b3f3362">More...</a><br/></td></tr>
<tr class="separator:a199db840eb3b542e407c975b5b3f3362"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a59755895fbc8f370c6904610326b2594"><td class="memItemLeft" align="right" valign="top"><a class="el" href="event__machine__group_8h.html#a199db840eb3b542e407c975b5b3f3362">em_event_group_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="event__machine__group_8h.html#a59755895fbc8f370c6904610326b2594">em_event_group_create</a> (void)</td></tr>
<tr class="memdesc:a59755895fbc8f370c6904610326b2594"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create new event group id for fork-join.  <a href="#a59755895fbc8f370c6904610326b2594">More...</a><br/></td></tr>
<tr class="separator:a59755895fbc8f370c6904610326b2594"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a221c47c47f119b44eec0b0a85b7c11ed"><td class="memItemLeft" align="right" valign="top"><a class="el" href="event__machine__types_8h.html#a125a101c5db94235eb758c8c32ab2628">em_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="event__machine__group_8h.html#a221c47c47f119b44eec0b0a85b7c11ed">em_event_group_delete</a> (<a class="el" href="event__machine__group_8h.html#a199db840eb3b542e407c975b5b3f3362">em_event_group_t</a> event_group)</td></tr>
<tr class="memdesc:a221c47c47f119b44eec0b0a85b7c11ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete (unallocate) an event group id.  <a href="#a221c47c47f119b44eec0b0a85b7c11ed">More...</a><br/></td></tr>
<tr class="separator:a221c47c47f119b44eec0b0a85b7c11ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b73bd7f58e2c0944e46af3753f2bbba"><td class="memItemLeft" align="right" valign="top"><a class="el" href="event__machine__types_8h.html#a125a101c5db94235eb758c8c32ab2628">em_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="event__machine__group_8h.html#a9b73bd7f58e2c0944e46af3753f2bbba">em_event_group_apply</a> (<a class="el" href="event__machine__group_8h.html#a199db840eb3b542e407c975b5b3f3362">em_event_group_t</a> group, int count, int num_notif, const <a class="el" href="structem__notif__t.html">em_notif_t</a> *notif_tbl)</td></tr>
<tr class="memdesc:a9b73bd7f58e2c0944e46af3753f2bbba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Apply event group configuration.  <a href="#a9b73bd7f58e2c0944e46af3753f2bbba">More...</a><br/></td></tr>
<tr class="separator:a9b73bd7f58e2c0944e46af3753f2bbba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4b2641ae20038924337e810b1ed91c2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="event__machine__types_8h.html#a125a101c5db94235eb758c8c32ab2628">em_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="event__machine__group_8h.html#ad4b2641ae20038924337e810b1ed91c2">em_event_group_increment</a> (int count)</td></tr>
<tr class="memdesc:ad4b2641ae20038924337e810b1ed91c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Increment event group count.  <a href="#ad4b2641ae20038924337e810b1ed91c2">More...</a><br/></td></tr>
<tr class="separator:ad4b2641ae20038924337e810b1ed91c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa14004a7be775865f6bfe66fca8cfbc3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="event__machine__group_8h.html#a199db840eb3b542e407c975b5b3f3362">em_event_group_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="event__machine__group_8h.html#aa14004a7be775865f6bfe66fca8cfbc3">em_event_group_current</a> (void)</td></tr>
<tr class="memdesc:aa14004a7be775865f6bfe66fca8cfbc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Current event group.  <a href="#aa14004a7be775865f6bfe66fca8cfbc3">More...</a><br/></td></tr>
<tr class="separator:aa14004a7be775865f6bfe66fca8cfbc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ac26c1e7c556eaec111ec33e8ff95dd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="event__machine__types_8h.html#a125a101c5db94235eb758c8c32ab2628">em_status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="event__machine__group_8h.html#a4ac26c1e7c556eaec111ec33e8ff95dd">em_send_group</a> (em_event_t event, <a class="el" href="event__machine__types_8h.html#a43cb5a167efa542d81180a54915d99bf">em_queue_t</a> queue, <a class="el" href="event__machine__group_8h.html#a199db840eb3b542e407c975b5b3f3362">em_event_group_t</a> group)</td></tr>
<tr class="memdesc:a4ac26c1e7c556eaec111ec33e8ff95dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send event with group number.  <a href="#a4ac26c1e7c556eaec111ec33e8ff95dd">More...</a><br/></td></tr>
<tr class="separator:a4ac26c1e7c556eaec111ec33e8ff95dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Event Machine optional fork-join helper. </p>
<p>An event group can be used to trigger join of parallel operations. The number of parallel operations need to be known by the event group creator, but the separate events handlers don't need top know anything about the other related events.</p>
<ol type="1">
<li>a group is created with <a class="el" href="event__machine__group_8h.html#a59755895fbc8f370c6904610326b2594" title="Create new event group id for fork-join.">em_event_group_create()</a></li>
</ol>
<ol type="1">
<li>the number of parallel events is set with <a class="el" href="event__machine__group_8h.html#a9b73bd7f58e2c0944e46af3753f2bbba" title="Apply event group configuration.">em_event_group_apply()</a></li>
</ol>
<ol type="1">
<li>the parallel events are sent normally, but using <a class="el" href="event__machine__group_8h.html#a4ac26c1e7c556eaec111ec33e8ff95dd" title="Send event with group number.">em_send_group()</a> instead of <a class="el" href="event__machine_8h.html#aca4584a01b71429dfbb045342454b464" title="Send an event to a queue.">em_send()</a></li>
</ol>
<ol type="1">
<li>as the receive function of the last event is completed, the given notification event(s) are sent automatically and can trigger the next operation</li>
</ol>
<ol type="1">
<li>the sequence continues from step 2. for new set of events (if the group is reused)</li>
</ol>
<p>So here the original initiator only needs to know how the task is split into parallel events, the event handlers and the one continuing the work (join) are not involved (assuming the task itself can be separately processed)</p>
<p>Note, that this only works with events targeted to an EO, i.e. SW events</p>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000005">Todo:</a></b></dt><dd>specify exact operation to cancel an aborted fork-join em_status_t em_event_group_cancel(em_event_group_t group, ...);</dd></dl>

<p>Definition in file <a class="el" href="event__machine__group_8h_source.html">event_machine_group.h</a>.</p>
</div><h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="a199db840eb3b542e407c975b5b3f3362"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef uint64_t <a class="el" href="event__machine__group_8h.html#a199db840eb3b542e407c975b5b3f3362">em_event_group_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Event group id. </p>
<p>This is used for fork-join event handling.</p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="event__machine__group_8h.html#a59755895fbc8f370c6904610326b2594" title="Create new event group id for fork-join.">em_event_group_create()</a> </dd></dl>

<p>Definition at line <a class="el" href="event__machine__group_8h_source.html#l00083">83</a> of file <a class="el" href="event__machine__group_8h_source.html">event_machine_group.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a59755895fbc8f370c6904610326b2594"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="event__machine__group_8h.html#a199db840eb3b542e407c975b5b3f3362">em_event_group_t</a> em_event_group_create </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create new event group id for fork-join. </p>
<dl class="section return"><dt>Returns</dt><dd>New event group id or EM_EVENT_GROUP_UNDEF</dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="event__machine__group_8h.html#a221c47c47f119b44eec0b0a85b7c11ed" title="Delete (unallocate) an event group id.">em_event_group_delete()</a>, <a class="el" href="event__machine__group_8h.html#a9b73bd7f58e2c0944e46af3753f2bbba" title="Apply event group configuration.">em_event_group_apply()</a> </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="test_appl_event_group_8c-example.html#a13">test_appl_event_group.c</a>.</dd>
</dl>
</div>
</div>
<a class="anchor" id="a221c47c47f119b44eec0b0a85b7c11ed"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="event__machine__types_8h.html#a125a101c5db94235eb758c8c32ab2628">em_status_t</a> em_event_group_delete </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="event__machine__group_8h.html#a199db840eb3b542e407c975b5b3f3362">em_event_group_t</a>&#160;</td>
          <td class="paramname"><em>event_group</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Delete (unallocate) an event group id. </p>
<p>An event group must not be deleted before it has been completed (notifications sent) or canceled.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">event_group</td><td>Event group to delete</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>EM_OK if successful.</dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="event__machine__group_8h.html#a59755895fbc8f370c6904610326b2594" title="Create new event group id for fork-join.">em_event_group_create()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a9b73bd7f58e2c0944e46af3753f2bbba"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="event__machine__types_8h.html#a125a101c5db94235eb758c8c32ab2628">em_status_t</a> em_event_group_apply </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="event__machine__group_8h.html#a199db840eb3b542e407c975b5b3f3362">em_event_group_t</a>&#160;</td>
          <td class="paramname"><em>group</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>count</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>num_notif</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structem__notif__t.html">em_notif_t</a> *&#160;</td>
          <td class="paramname"><em>notif_tbl</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Apply event group configuration. </p>
<p>The function sets (or resets) the event count and notification parameters for the event group. After it returns events sent to the group are counted against the (updated) count. Notification events are sent when all (counted) events have been processed. A new apply call is needed to reset the event group (counting).</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">group</td><td>Group id </td></tr>
    <tr><td class="paramname">count</td><td>Number of events in the group </td></tr>
    <tr><td class="paramname">num_notif</td><td>Number of noticifation events to send </td></tr>
    <tr><td class="paramname">notif_tbl</td><td>Table of notifications (events and target queues)</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>EM_OK if successful.</dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="event__machine__group_8h.html#a59755895fbc8f370c6904610326b2594" title="Create new event group id for fork-join.">em_event_group_create()</a>, <a class="el" href="event__machine__group_8h.html#a4ac26c1e7c556eaec111ec33e8ff95dd" title="Send event with group number.">em_send_group()</a> </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="test_appl_event_group_8c-example.html#a19">test_appl_event_group.c</a>.</dd>
</dl>
</div>
</div>
<a class="anchor" id="ad4b2641ae20038924337e810b1ed91c2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="event__machine__types_8h.html#a125a101c5db94235eb758c8c32ab2628">em_status_t</a> em_event_group_increment </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>count</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Increment event group count. </p>
<p>Increments event count of the current event group. Enables sending new events into the current group. Must be called before sending. Note that event count cannot be decremented.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">count</td><td>Number of events to add in the group</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>EM_OK if successful.</dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="event__machine__group_8h.html#a4ac26c1e7c556eaec111ec33e8ff95dd" title="Send event with group number.">em_send_group()</a> </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="test_appl_event_group_8c-example.html#a21">test_appl_event_group.c</a>.</dd>
</dl>
</div>
</div>
<a class="anchor" id="aa14004a7be775865f6bfe66fca8cfbc3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="event__machine__group_8h.html#a199db840eb3b542e407c975b5b3f3362">em_event_group_t</a> em_event_group_current </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Current event group. </p>
<p>Returns the event group of the currently received event or EM_EVENT_GROUP_UNDEF if the current event does not belong into any event group. Current group is needed when sending new events into the group.</p>
<dl class="section return"><dt>Returns</dt><dd>Current event group id or EM_EVENT_GROUP_UNDEF</dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="event__machine__group_8h.html#a59755895fbc8f370c6904610326b2594" title="Create new event group id for fork-join.">em_event_group_create()</a> </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="test_appl_event_group_8c-example.html#a22">test_appl_event_group.c</a>.</dd>
</dl>
</div>
</div>
<a class="anchor" id="a4ac26c1e7c556eaec111ec33e8ff95dd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="event__machine__types_8h.html#a125a101c5db94235eb758c8c32ab2628">em_status_t</a> em_send_group </td>
          <td>(</td>
          <td class="paramtype">em_event_t&#160;</td>
          <td class="paramname"><em>event</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="event__machine__types_8h.html#a43cb5a167efa542d81180a54915d99bf">em_queue_t</a>&#160;</td>
          <td class="paramname"><em>queue</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="event__machine__group_8h.html#a199db840eb3b542e407c975b5b3f3362">em_event_group_t</a>&#160;</td>
          <td class="paramname"><em>group</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Send event with group number. </p>
<p>Any valid event and destination queue parameters can be used. Event group id indicates which event group the event belongs to. Event group has to be first created and applied.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">event</td><td>Event to send </td></tr>
    <tr><td class="paramname">queue</td><td>Destination queue </td></tr>
    <tr><td class="paramname">group</td><td>Event group</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>EM_OK if successful.</dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="event__machine_8h.html#aca4584a01b71429dfbb045342454b464" title="Send an event to a queue.">em_send()</a>, <a class="el" href="event__machine__group_8h.html#a59755895fbc8f370c6904610326b2594" title="Create new event group id for fork-join.">em_event_group_create()</a>, <a class="el" href="event__machine__group_8h.html#a9b73bd7f58e2c0944e46af3753f2bbba" title="Apply event group configuration.">em_event_group_apply()</a>, <a class="el" href="event__machine__group_8h.html#ad4b2641ae20038924337e810b1ed91c2" title="Increment event group count.">em_event_group_increment()</a> </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="test_appl_event_group_8c-example.html#a20">test_appl_event_group.c</a>.</dd>
</dl>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="event__machine__group_8h.html">event_machine_group.h</a></li>
    <li class="footer">Generated on Wed Aug 7 2013 15:17:39 for Open Event Machine API by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.3.1 </li>
  </ul>
</div>
</body>
</html>
